﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ThridGroup.ERP.DTO.WarehouseManagement;
using ThridGroup.ERP.DTO.MaterielDto;
using Volo.Abp.Application.Services;

namespace ThridGroup.ERP.WarehouseManagement
{
    /// <summary>
    /// 库存现有量服务接口
    /// </summary>
    public interface IInventoryModelServices : IApplicationService
    {
        /// <summary>
        /// 分页查询库存现有量
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <returns>分页结果</returns>
        Task<(List<InventoryDto> Items, int TotalCount)> GetInventoryListAsync(QueryInventoryDto query);

        /// <summary>
        /// 根据ID获取库存信息
        /// </summary>
        /// <param name="id">库存ID</param>
        /// <returns>库存信息</returns>
        Task<InventoryDto> GetInventoryByIdAsync(int id);

        /// <summary>
        /// 获取物料分类树形结构
        /// </summary>
        /// <returns>物料分类树</returns>
        Task<List<MaterielTypeTreeSelectDto>> GetMaterialTypeTreeAsync();
    }
}
